"""
    读取文件
"""
import configparser
import json
import os.path
import yaml


def getProjectRoot():
#文件移动之后，每次都需要更改路径，因此将相对路径封装为一个函数进行调用
    # print("开始获取根目录")
    #realpath用于获取指定目录
    current_file_path = os.path.realpath(__file__)  #current：当前的
    # print("获取当前文件",current_file_path)
    current_dir_path = os.path.dirname(current_file_path)  #dir:目录
    # print("获取当前文件所在的目录",current_file_path)
    current_project_path = os.path.dirname(current_dir_path)
    print("获取项目根目录",current_file_path)
    return current_project_path

#读取配置文件
def read_config(option,section='env'):   #section：章节,option:选项
    print("读取test.ini文件")
    ini_file_path = getProjectRoot() + r"\test.ini"
    #ConfigParser 是用来读取配置文件的包
    config = configparser.ConfigParser() #创建一个对象
    config.read(ini_file_path) #读取test.ini的路径
    return config.get(section,option)

#读取数据文件
def read_yaml(file_name):
    #拼接yaml数据文件的路径
    file_path=getProjectRoot()+"\\test_data\\"+file_name
    #读取yaml数据文件的内容  mode:方式
    with open(file_path,mode='r',encoding='utf-8') as f:
        #c是字符串
        c=f.read()
    #文件内容按照yaml格式加载到python中   FullLoader:加载完整的yaml语言
    #load:加载
    return yaml.load(c,Loader=yaml.FullLoader)

if __name__ == '__main__':
    print(read_config("base_url"))
    print(read_config("test","other"))
    print(read_config("db_info"))
    #read_config读进来是字符串(看着像是字典，但本质是字符串)，
    # 所以需要转换成字典才能使用
    db_info = json.loads(read_config("db_info"))
    print(db_info["host"])  #info 信息
    #读yaml文件中的测试数据（是一个列表）
    y=read_yaml("register_fail_data.yaml")
    print(y)
    #遍历每一条测试数据
    for y1 in y:
        print(y1["data"])